package cn.hushi.utils;

import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration;

/**
 * HibrenateUtils 类，提供了管理 Hibernate 配置和会话工厂的工具方法
 */
public class HibernateUtil {
    // 私有静态 Configuration 对象，用于保存 Hibernate 的配置
    private static Configuration cfg = null;
    // 私有静态 SessionFactory 对象，用于创建和管理 Hibernate 会话
    private static SessionFactory factory = null;

    /**
     * 静态代码块，在类加载时会被执行
     */
    static {
        // 创建一个新的 Configuration 对象
        cfg = new Configuration();
        // 调用 configure() 方法进行 Hibernate 的配置
        cfg.configure();
        // 通过 buildSessionFactory() 方法构建 SessionFactory
        factory = cfg.buildSessionFactory();
    }

    public static Session getSession() {
        return factory.openSession();
    }
    //getSession() 是一个公共静态方法，它的目的是获取一个Hibernate 会话。
    //通过调用 factory.openSession() 来获取一个打开的Hibernate 会话，并将其返回。
    //这个方法提供了一种方便的方式来获取可用的 Hibernate 会话，以便进行数据库操作。
}